import { Component, OnInit,Input,Output } from '@angular/core';

@Component({
  selector: 'app-datepicker',
  templateUrl: './datepicker.component.html',
  styleUrls: ['./datepicker.component.css']
})
export class DatepickerComponent implements OnInit {
  
  /**月份和星期*/
  monthName:Array<string>=['一月','二月','三月','四月','五月','六月','七月','八月','九月','十月','十一月','十二月'];
  weekName:Array<string>=['日','一','二','三','四','五','六'];

   
  displayDate:{year:number,month:number,day:number};   
  @Input()maxYear:number;
  @Input()minYear:number;
  years:Array<number>=[];
  monthTpl:Array<Array<number>>=[[],[],[],[],[],[]];

  @Input()
  set current(date:string){ //2012-01-12
      let t =date.split('-');
      this.displayDate={year:Number(t[0]),month:Number(t[1])-1,day:Number(t[2])};
      console.log('input set',t);
  }

  constructor() { }

  ngOnInit() {

     //根据年份限制计算年份段
     this.maxYear=this.maxYear||2028;
     this.minYear=this.minYear||2008;
     for(let i= this.minYear;i<this.maxYear;i++){
         this.years.push(i);
     } 
      let date=new Date(),
          year=date.getFullYear(),
          month=date.getMonth(),
          day=date.getDate();
      this.displayDate=this.displayDate||{year,month,day};  
    console.log(this.displayDate)
  }

  /**计算每月的第一天是星期几 0~6 <==>周日~周六,月份0~11<==>一月~12月*/
  getWeekDay(year:number,month:number,day:number){
     return new Date(year,month,day).getDay()
  }

  /**返回某年所有月份的天数*/
  getDayNumber(year:number):Array<number>{
     return [31,28+this.isLeapYear(year),31,30,31,30,31,31,30,31,30,31];
  }
  /**
   * 计算某年是平年还是润年,平年365天，润年366天
   *（1）当年份是整百年时，年份能被400整除的是闰年，不能被400整除的是平年;
   *（2）当年份不是整百年时，年份能被4整除的是闰年，不能被4整除的是平年。
   * 平年返回0，润年返回1
   */
  isLeapYear(year:number){

     return year%100===0 ? (year%400===0 ? 1 : 0) : (year%4===0 ? 1 : 0);

  }

}
